package com.itheima.d6_jdk8_time;

import java.time.Clock;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Set;

public class Test4_ZoneId_ZonedDateTime {
    public static void main(String[] args) {
        // 目标：了解时区和带时区的时间。
        // 1、ZoneId的常见方法：
        // public static ZoneId systemDefault(): 获取系统默认的时区
        ZoneId zi = ZoneId.systemDefault();
        System.out.println(zi);

        // public static Set<String> getAvailableZoneIds(): 获取Java支持的全部时区Id
        System.out.println(ZoneId.getAvailableZoneIds());

        // public static ZoneId of(String zoneId) : 把某个时区id封装成ZoneId对象。
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String id = "America/New_York";
        ZoneId america = ZoneId.of(id);



        // 2、ZonedDateTime：带时区的时间。
        // public static ZonedDateTime now(ZoneId zone): 获取某个时区的ZonedDateTime对象。
        ZonedDateTime now1 = ZonedDateTime.now(america);
        System.out.println(dtf.format(now1));

        // public static ZonedDateTime now()：获取系统默认时区的ZonedDateTime对象
        System.out.println(ZonedDateTime.now());

        //获取日期时间数据自己
        System.out.println(ZonedDateTime.now().getYear());
        System.out.println(ZonedDateTime.now().getMonth());
        System.out.println(ZonedDateTime.now().getDayOfMonth());
        System.out.println(ZonedDateTime.now().getDayOfYear());
    }
}
